package com.selftaught.domain.hcpatientinfo;

import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;

import java.io.Serializable;
import java.util.List;

/**
 * 患者信息 response
 *
 * @author huya
 * @date 2025-10-23
 */
@XmlRootElement(name = "root")
@XmlAccessorType(XmlAccessType.FIELD)
public class HcpatientinfoResponse implements Serializable {

    @XmlElement(name = "header")
    private ResponseHeader header;

    @XmlElement(name = "body")
    private ResponseBody body;

    public ResponseHeader getHeader() {
        return header;
    }

    public void setHeader(ResponseHeader header) {
        this.header = header;
    }

    public ResponseBody getBody() {
        return body;
    }

    public void setBody(ResponseBody body) {
        this.body = body;
    }

    @Override
    public String toString() {
        return "HcpatientinfoResponse{" +
                "header=" + header +
                ", body=" + body +
                '}';
    }

    /**
     * ResponseHeader
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class ResponseHeader {

        @XmlElement(name = "NHIPlog")
        private NHIPlog NHIPlog;

        @XmlElement(name = "msgCode")
        private String msgCode;

        @XmlElement(name = "msgId")
        private String msgId;

        @XmlElement(name = "type")
        private String type;

        @XmlElement(name = "createTime")
        private String createTime;

        public ResponseHeader.NHIPlog getNHIPlog() {
            return NHIPlog;
        }

        public void setNHIPlog(ResponseHeader.NHIPlog NHIPlog) {
            this.NHIPlog = NHIPlog;
        }

        public String getMsgCode() {
            return msgCode;
        }

        public void setMsgCode(String msgCode) {
            this.msgCode = msgCode;
        }

        public String getMsgId() {
            return msgId;
        }

        public void setMsgId(String msgId) {
            this.msgId = msgId;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getCreateTime() {
            return createTime;
        }

        public void setCreateTime(String createTime) {
            this.createTime = createTime;
        }

        @Override
        public String toString() {
            return "ResponseHeader{" +
                    "NHIPlog=" + NHIPlog +
                    ", msgCode='" + msgCode + '\'' +
                    ", msgId='" + msgId + '\'' +
                    ", type='" + type + '\'' +
                    ", createTime='" + createTime + '\'' +
                    '}';
        }

        /**
         * NHIPlog
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        public static class NHIPlog {

            @XmlElement(name = "status")
            private String status;

            public String getStatus() {
                return status;
            }

            public void setStatus(String status) {
                this.status = status;
            }

            @Override
            public String toString() {
                return "NHIPlog{" +
                        "status='" + status + '\'' +
                        '}';
            }
        }
    }

    /**
     * ResponseBody
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class ResponseBody {

        @XmlElement(name = "items")
        private Items items;

        public Items getItems() {
            return items;
        }

        public void setItems(Items items) {
            this.items = items;
        }

        @Override
        public String toString() {
            return "ResponseBody{" +
                    "items=" + items +
                    '}';
        }

        /**
         * Items
         */
        @XmlAccessorType(XmlAccessType.FIELD)
        public static class Items {

            @XmlElement(name = "item")
            private List<PatientItem> item;

            public List<PatientItem> getItem() {
                return item;
            }

            public void setItem(List<PatientItem> item) {
                this.item = item;
            }

            @Override
            public String toString() {
                return "Items{" +
                        "item=" + item +
                        '}';
            }
        }
    }

    /**
     * PatientItem 患者信息
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class PatientItem {

        /**
         * 患者名称
         */
        @XmlElement(name = "patName")
        private String patName;

        /**
         * 患者性别
         */
        @XmlElement(name = "patSex")
        private String patSex;

        /**
         * 患者年龄
         */
        @XmlElement(name = "patAge")
        private String patAge;

        /**
         * 患者出生日期
         */
        @XmlElement(name = "patBirth")
        private String patBirth;

        /**
         * 患者家庭住址
         */
        @XmlElement(name = "patAddress")
        private String patAddress;

        /**
         * 患者手机号
         */
        @XmlElement(name = "patMobile")
        private String patMobile;

        /**
         * 患者 ID 类型
         */
        @XmlElement(name = "patIdType")
        private String patIdType;

        /**
         * 患者身份证号
         */
        @XmlElement(name = "patIdNo")
        private String patIdNo;

        /**
         * 患者卡类型
         */
        @XmlElement(name = "patCardType")
        private String patCardType;

        /**
         * 患者病历号
         */
        @XmlElement(name = "patCardNo")
        private String patCardNo;

        /**
         * 患者 ID
         */
        @XmlElement(name = "patientId")
        private String patientId;

        /**
         * 患者类型
         */
        @XmlElement(name = "patType")
        private String patType;

        /**
         * 患者 totalAmt
         */
        @XmlElement(name = "totalAmt")
        private String totalAmt;

        public String getPatName() {
            return patName;
        }

        public void setPatName(String patName) {
            this.patName = patName;
        }

        public String getPatSex() {
            return patSex;
        }

        public void setPatSex(String patSex) {
            this.patSex = patSex;
        }

        public String getPatAge() {
            return patAge;
        }

        public void setPatAge(String patAge) {
            this.patAge = patAge;
        }

        public String getPatBirth() {
            return patBirth;
        }

        public void setPatBirth(String patBirth) {
            this.patBirth = patBirth;
        }

        public String getPatAddress() {
            return patAddress;
        }

        public void setPatAddress(String patAddress) {
            this.patAddress = patAddress;
        }

        public String getPatMobile() {
            return patMobile;
        }

        public void setPatMobile(String patMobile) {
            this.patMobile = patMobile;
        }

        public String getPatIdType() {
            return patIdType;
        }

        public void setPatIdType(String patIdType) {
            this.patIdType = patIdType;
        }

        public String getPatIdNo() {
            return patIdNo;
        }

        public void setPatIdNo(String patIdNo) {
            this.patIdNo = patIdNo;
        }

        public String getPatCardType() {
            return patCardType;
        }

        public void setPatCardType(String patCardType) {
            this.patCardType = patCardType;
        }

        public String getPatCardNo() {
            return patCardNo;
        }

        public void setPatCardNo(String patCardNo) {
            this.patCardNo = patCardNo;
        }

        public String getPatientId() {
            return patientId;
        }

        public void setPatientId(String patientId) {
            this.patientId = patientId;
        }

        public String getPatType() {
            return patType;
        }

        public void setPatType(String patType) {
            this.patType = patType;
        }

        public String getTotalAmt() {
            return totalAmt;
        }

        public void setTotalAmt(String totalAmt) {
            this.totalAmt = totalAmt;
        }

        @Override
        public String toString() {
            return "PatientItem{" +
                    "patName='" + patName + '\'' +
                    ", patSex='" + patSex + '\'' +
                    ", patAge='" + patAge + '\'' +
                    ", patBirth='" + patBirth + '\'' +
                    ", patAddress='" + patAddress + '\'' +
                    ", patMobile='" + patMobile + '\'' +
                    ", patIdType='" + patIdType + '\'' +
                    ", patIdNo='" + patIdNo + '\'' +
                    ", patCardType='" + patCardType + '\'' +
                    ", patCardNo='" + patCardNo + '\'' +
                    ", patientId='" + patientId + '\'' +
                    ", patType='" + patType + '\'' +
                    ", totalAmt='" + totalAmt + '\'' +
                    '}';
        }
    }
}
